/*
 * @Description: 字符文件输入流、字符文件输出流
 * @Author: rendc
 * @Date: 2025-08-21 14:36:56
 * @LastEditors: rendc
 * @LastEditTime: 2025-08-21 15:08:02
 */

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

// 实际开发中异常不要直接throws Exception 需要处理
public class TestFileReaderWriter {
  // 拷贝a文件中的内容追加到b文件中

  public static void main(String[] args) {
    // 1. 实例化流对象
    File fileA = new File("a.txt");
    File fileB = new File("b.txt");
    // 资源声明
    Reader reader = null;
    Writer writer = null;
    try {
      reader = new FileReader(fileA);
      // 准备b文件的输出流 设置文件追加
      writer = new FileWriter(fileB, true);
      // 读a文件
      int i;
      // System.out.println("i:" + i);
      while ((i = reader.read()) != -1) {
        writer.write(i);
      }
      writer.flush();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } finally {
      // 关闭流 先开的后关 后开的先关
      try {
        if (writer != null) {
          writer.close();
        }
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      // 每个资源的关闭最好都单独关闭 这样别的资源异常不影响本资源关闭
      try {
        if (reader != null) {
          reader.close();
        }
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }
}